package com.candy.exp;

public class ExceptionDemo {
    public static void main(String[] args) {
        test03();
    }

    /**
     * 手动制造异常  一般用于方法之间的通信
     */
    public static void test04() {
        int num=6;
        if(num==6){
            throw new NullPointerException();
        }
    }

    public static void test03(){
        try{
            test02();
        }catch (ClassNotFoundException e){
            System.out.println("该类不存在");
        }
    }

    /**
     * throws向上抛出异常，由上层调用者来处理
     * @throws ClassNotFoundException
     */
    public static void test02() throws ClassNotFoundException {
        Class.forName("");
    }





    /**
     * 异常处理，主动捕获
     *
     * 语法：try{
     *     可能会出现异常的代码块
     * }catch（异常类型 异常名字）{
     *     出现对应异常的处理代码
     * }finally{
     *     无论是否发生异常都会被执行的代码
     * }
     */
    public static void test01() {
        try{
            int num_01=5;
            int num_02=2;
        //       运行时异常（非检查性异常）
            System.out.println(num_01/num_02);//ArithmeticException: / by zero
        //      编译时异常（检查性异常）
            Class.forName("com.candy.inner.InnerClassDemo");
        }catch (ArithmeticException e){
            System.out.println("分母不能为0");
        }catch (ClassNotFoundException e){
            System.out.println("未找到该类");
        }catch(Exception e){
            System.out.println("");
        }finally {
            System.out.println("无论是否发生异常都会执行的代码块");
        }
    }
}
